Multi-Application Environment

ABSTRACT

This document describes techniques and apparatuses enabling a multi-application environment. In some embodiments, these techniques and apparatuses enable multi-application environments having combinations of immersive interfaces, windows-based interfaces, and a desktop treated as an immersive interface.

RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 13/118,339, filed May 27, 2011 and titled“Multi-Application Environment,” the entire disclosure of which ishereby incorporated by reference.

BACKGROUND

Conventional operating systems permit users to view multiple computingapplications through windows. Each of these windows generally includes aframe having controls for interacting with the computing application aswell as controls for selecting which window frame is primary or moving,sizing, or otherwise managing the layout of the window. These windowframes, however, occupy portions of a display that might otherwise bededicated to an application's content. Furthermore, managing the primacyor layout of these windows through these controls can be time-consumingand annoying to users.

SUMMARY

This document describes techniques and apparatuses enabling amulti-application environment. The multi-application environmentdescribed herein can present multiple applications without dedicatingsignificant amounts of a display to window frames for the applicationsand/or requiring management of window frames, such as their size,location, or primacy on the display. In some embodiments, thesetechniques and apparatuses enable multi-application environments havingcombinations of immersive interfaces, windows-based interfaces, and adesktop treated as an immersive interface. Also, in some embodiments thetechniques and apparatuses enable management of applications in themulti-application environment, such as to size and move interfaceswithin the environment. Further still, some embodiments enablemanagement of previously-interacted-with applications that are notcurrently presented. Further, some embodiments of the techniques enablemanagement of applications and their interfaces, whether currentlydisplayed or not, through edge gestures or a user interface managementmenu.

This summary is provided to introduce simplified concepts that arefurther described below in the Detailed Description. This summary is notintended to identify essential features of the claimed subject matter,nor is it intended for use in determining the scope of the claimedsubject matter. Techniques and/or apparatuses enabling amulti-application environment are also referred to herein separately orin conjunction as the “techniques” as permitted by the context, thoughtechniques may include or instead represent other aspects describedherein.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments enabling a multi-application environment are described withreference to the following drawings. The same numbers are usedthroughout the drawings to reference like features and components:

FIG. 1 illustrates an example system in which techniques enabling amulti-application environment can be implemented.

FIG. 2 illustrates an example method for enabling edge gestures, theedge gestures being approximately perpendicular to an edge in which thegesture begins.

FIG. 3 illustrates an example tablet computing device having atouch-sensitive display presenting an immersive interface.

FIG. 4 illustrates the example immersive interface of FIG. 3 along withexample edges.

FIG. 5 illustrates the example immersive interface of FIGS. 3 and 4along with angular variance lines from a perpendicular line and a linefrom a start point to a later point of a gesture.

FIG. 6 illustrates the edges of the immersive interface shown in FIG. 4along with two regions in the right edge.

FIG. 7 illustrates an application-selection interface presented by asystem-interface module in response to an edge gesture made over theimmersive interface and webpage of FIG. 3.

FIG. 8 illustrates an example method for enabling edge gesturesincluding determining an interface to present based on some factor ofthe gesture.

FIG. 9 illustrates an example method enabling expansion of, or ceasingpresentation of, a user interface presented in response to an edgegesture or presentation of another user interface.

FIG. 10 illustrates a laptop computer having a touch-sensitive displayhaving a windows-based email interface and two immersive interfaces.

FIG. 11 illustrates the interfaces of FIG. 10 along with two gestureshaving a start point, later points, and one or more successive points.

FIG. 12 illustrates the windows-based email interface of FIGS. 10 and 11along with an email handling interface presented in response to an edgegesture.

FIG. 13 illustrates the interfaces of FIG. 12 along with anadditional-email-options interface presented in response to a gesturedetermined to have a successive point a preset distance from the edge.

FIG. 14 illustrates a method for switching back to apreviously-interacted-with application using a queue.

FIG. 15 illustrates an example interaction order in which a userinteracts with various applications.

FIG. 16 illustrates the immersive interface of FIG. 3 along with athumbnail image of a user interface of a prior application.

FIG. 17 illustrates a method for switching back to apreviously-interacted-with application, which may or may not use aqueue.

FIG. 18 illustrates the immersive interface of FIGS. 3 and 16, twoprogressive presentations, and two gesture portions.

FIG. 19 illustrates a method enabling a multi-application environment,including altering sizes of multiple immersive interfaces responsive toa single selection.

FIG. 20 illustrates the desktop computing device of FIG. 1 having atouch-sensitive display shown displaying a multi-application environmentwith two immersive interfaces divided by an interface divider region.

FIG. 21 illustrates the multi-application environment of FIG. 20 withsizes of the two immersive interfaces altered and the interface dividerregion moved.

FIG. 22 illustrates a method for displaying an immersive interface of anapplication in a region responsive to as little as one selection and ata size fully occupying the region.

FIG. 23 illustrates a current immersive interface fully occupying amulti-application environment having three regions.

FIG. 24 illustrates the multi-application environment of FIG. 23 with areduced-size immersive interface instead of the current immersiveinterface of FIG. 23 and a second immersive interface.

FIG. 25 illustrates a method for managing a multi-applicationenvironment through a user interface.

FIG. 26 illustrates an example multi-application environment havingprimary and non-primary regions.

FIG. 27 illustrates the multi-application environment of FIG. 26including a user interface management menu.

FIG. 28 illustrates a method enabling display of a desktop as animmersive interface within a multi-application environment.

FIG. 29 illustrates an example multi-application environment having adesktop immersive interface displaying windows-based interfaces and ataskbar along with an immersive interface displaying content.

FIG. 30 illustrates a method enabling content presentation and/ormanagement of a multi-application environment.

FIG. 31 illustrates an example device in which techniques enabling amulti-application environment can be implemented.

DETAILED DESCRIPTION

Overview

This document describes techniques and apparatuses enabling amulti-application environment. The multi-application environmentdescribed herein can present multiple applications without dedicatingsignificant amounts of a display to window frames for the applicationsand/or requiring management of window frames, such as their size,location, or primacy on the display. In some embodiments, thesetechniques and apparatuses enable multi-application environments havingcombinations of immersive interfaces, windows-based interfaces, and adesktop treated as an immersive interface. Also, in some embodiments thetechniques and apparatuses enable management of applications currentlypresented in or not currently presented in the multi-applicationenvironment, such as to size and move interfaces within the environmentand select previously-interacted-with applications that are notcurrently presented. This and other forms of management are enabled, insome embodiments, through edge gestures made over the multi-applicationenvironment or a user interface management menu.

These are but a few examples of many ways in which the techniques enablea multi-application environment, others of which are described below.

Example System

FIG. 1 illustrates an example system 100 in which techniques enabling amulti-application environment can be embodied. System 100 includes acomputing device 102, which is illustrated with six examples: a laptopcomputer 104, a tablet computing device 106, a smart phone 108, aset-top box 110, a desktop computer 112, and a gaming device 114, thoughother computing devices and systems, such as servers and netbooks, mayalso be used.

Computing device 102 includes computer processor(s) 116 andcomputer-readable storage media 118 (media 118). Media 118 includes anoperating system 120, windows-based mode module 122, multi-applicationenvironment module 124, system-interface module 126, gesture handler128, application manager 130, which includes or has access toapplication queue 132, manager 134, and one or more applications 136,each having one or more application user interfaces 138.

Computing device 102 also includes or has access to one or more displays140 and input mechanisms 142. Four example displays are illustrated inFIG. 1. Input mechanisms 142 may include gesture-sensitive sensors anddevices, such as touch-based sensors and movement-tracking sensors(e.g., camera-based), as well as mice (free-standing or integral with akeyboard), track pads, and microphones with accompanying voicerecognition software, to name a few. Input mechanisms 142 may beseparate or integral with displays 140; integral examples includegesture-sensitive displays with integrated touch-sensitive ormotion-sensitive sensors.

Windows-based mode module 122 presents application user interfaces 138through windows having frames. These frames may provide controls throughwhich to interact with an application and/or controls enabling a user tomove and resize the window.

Multi-application environment module 124 provides an environment bywhich a user may view and interact with one or more of applications 136through application user interfaces 138. Multi-application environment124 may present one or more application user interfaces 138 inconjunction with windows-based mode module 122. Multi-applicationenvironment 124 may also or instead present one or more application userinterfaces 138 as immersive interfaces.

An immersive interface, in some embodiments, presents content of, andenables interaction with, applications with little or no window frame,without a need for a user to manage a window frame's layout or primacyrelative to other windows (e.g., which window is active or up front),without a need for a user to manually size or position application userinterfaces 138, and/or without presenting visual controls (e.g.,permanent controls on a window frame or in a window obscuring content).

The multi-application environment enabled by multi-applicationenvironment module 124 can be, but is not required to be, hosted and/orsurfaced without use of a windows-based desktop environment. Thus, insome cases multi-application environment module 124 presents amulti-application environment as an immersive environment, and thuswithout a window (even one without a substantial frame) and/or precludesusage of desktop-like displays (e.g., a taskbar). Further still, in someembodiments this multi-application environment is similar to anoperating system in that it is not closeable or capable of beingun-installed. While not required, in some cases this multi-applicationenvironment enables use of all or nearly all of the pixels of a displayby applications within the multi-application environment.

Examples of multi-application environments, some of which include onlyimmersive interfaces and some of which include a windows-based interfaceor a desktop treated as an immersive interface, are provided below,though they are not exhaustive or intended to limit the techniquesdescribed herein.

System-interface module 126 provides one or more interfaces throughwhich interaction with operating system 120 is enabled, such as anapplication-launching interface, a start menu, or a system tools oroptions menu, to name just a few.

Operating system 120, modules 122, 124, and 126, as well as gesturehandler 128, application manager 130, and manager 134 can be separatefrom each other or combined or integrated in any suitable form.

Example Methods

Example methods 200, 800, and 900 address edge gestures, example methods1400 and 1700 address switching back to a previously-interacted-withapplication, example methods 1900 and 2200 address managing an immersiveinterface in a multi-application environment, example method 2500addresses managing a multi-application environment through a userinterface, method 2800 address a desktop treated as an immersiveinterface within a multi-application environment, method 3000 addressescontent presentation and/or management of a multi-applicationenvironment.

The methods may be used separately or in combination with each other, inwhole or in part. For example, the techniques may use an edge gesture toenable selection, sizing, and switching of interfaces currently in amulti-application environment. The techniques may also selectpreviously-interacted-with applications using an application queue, withor without an edge gesture. Further, the techniques may automaticallysize multiple interfaces on selection of a previously-interacted-withapplication through an application queue or responsive to a selection tomove or alter a currently-displayed interface.

Edge Gestures

FIG. 2 depicts a method 200 for enabling edge gestures based on the edgegesture being approximately perpendicular to an edge in which thegesture begins. In portions of the following discussion, reference maybe made to system 100 of FIG. 1 and other methods and exampleembodiments described elsewhere herein, reference to which is made forexample only.

Block 202 receives a gesture. This gesture may be received at variousparts of a display, such as over a windows-based interface, an immersiveinterface, or no interface. Further, this gesture may be made andreceived in various manners, such as a pointer tracking a movementreceived through a touch pad, mouse, or roller ball or a physicalmovement made with arm(s), finger(s), or a stylus received through amotion-sensitive or touch-sensitive mechanism.

By way of example consider FIG. 3, which illustrates a tablet computingdevice 106. Tablet 106 includes a touch-sensitive display 302 showndisplaying an immersive interface 304 that includes a webpage 306. Aspart of an ongoing example, at block 202 gesture handler 128 receivesgesture 308 as shown in FIG. 3.

Block 204 determines whether a start point of the gesture is at an edge.As noted above, the edge in question can be an edge of a user interface,whether immersive or windows-based, and/or of a display. In some cases,of course, an edge of a user interface is also an edge of a display. Thesize of the edge can vary based on various factors about the display orinterface. A small display or interface may have a smaller size inabsolute or pixel terms than a large display or interface. A highlysensitive input mechanism permits a smaller edge as well. Example edgesare rectangular and vary between one and twenty pixels in one dimensionand an interface limit of the interface or display in the otherdimension, though other sizes and shapes, including convex and concaveedges may instead be used.

Continuing the ongoing example, consider FIG. 4, which illustratesimmersive interface 304 and gesture 308 of FIG. 3 as well as left edge402, top edge 404, right edge 406, and bottom edge 408. For visualclarity webpage 306 is not shown. In this example the dimensions of theinterface and display are of a moderate size, between that of smartphones and that of many laptop and desktop displays. Edges 402, 404,406, and 408 have a small dimension of twenty pixels, an area of eachshown bounded by dashed lines at twenty pixels from the display orinterface limit at edge limit 410, 412, 414, and 416, respectively.While shown overlapping at the corners, edges may instead be mitered atthe corners or one edge can be favored over another (e.g., edge 404 isfavored over edge 406 if a start point is received at the overlappingcorner).

Gesture handler 128 determines that gesture 308 has a start point 418and that this start point 418 is within left edge 402. Gesture handler128 determines the start point in this case by receiving data indicating[X,Y] coordinates in pixels at which gesture 308 begins and comparingthe first of these coordinates to those pixels contained within eachedge 402, 404, 406, and 408. Gesture handler 128 often can determine thestart point and whether it is in an edge faster than a sample rate,thereby causing little or no performance downgrade from techniques thatsimply pass gestures directly to an exposed interface over which agesture is made.

Returning to method 200 generally, if block 204 determines that thestart point of the gesture is not at an edge, method 200 proceeds alonga “No” path to block 206. Block 206 passes the gestures to an exposeduser interface, such as an underlying interface over which the gesturewas received. Altering the ongoing example, assume that gesture 308 wasdetermined not to have a start point within an edge. In such a casegesture handler 128 passes buffered data for gesture 308 to immersiveuser interface 304. After passing the gesture, method 200 ends.

If block 204 determines that the start point of the gesture is in anedge, method 200 proceeds along a “Yes” path to block 208. Block 208responds to the positive determination of block 204 by determiningwhether a line from the start point to a later point of the gesture isapproximately perpendicular from the edge.

Block 208, in some embodiments, determines the later point used. Gesturehandler 128, for example, can determine the later point of the gesturebased on the later point being received a preset distance from the edgeor the start point, such as past edge limit 410 for edge 402 or twentypixels from start point 418, all of FIG. 4. In some other embodiments,gesture handler 128 determines the later point based on it beingreceived a preset time after receipt of the start point, such an amountof time slightly greater than used generally by computing device 102 todetermine that a gesture is a tap-and-hold or hover gesture.

For the ongoing embodiment, gesture handler 128 uses a later-receivedpoint of gesture 308 received outside of edge 402 so long as thatlater-received point is received within a preset time. If no point isreceived outside of the edge within that preset time, gesture handler128 proceeds to block 206 and passes gesture 308 to immersive interface304.

Using the start point, block 208 determines whether a line from thestart point to the later point of the gesture is approximatelyperpendicular to the edge. Various angles of variance can be used inthis determination by block 208, such as five, ten, twenty, or thirtydegrees.

By way of example, consider an angle of variance of thirty degrees fromperpendicular. FIG. 5 illustrates this example variance, showingimmersive interface 304, gesture 308, left edge 402, left edge limit410, and start point 418 of FIGS. 3 and 4 along with a thirty-degreevariance lines 502 from perpendicular line 504. Thus, gesture handler128 determines that line 506 from start point 418 to later point 508(which is at about twenty degrees from perpendicular) is approximatelyperpendicular based on being within the example thirty-degree varianceline 502.

Generally, if block 208 determines that the line is not approximatelyperpendicular to the edge, method 200 proceeds along a “No” path toblock 206. As noted in part above, block 208 may also determine that alater point or other aspect of a gesture disqualifies the gesture.Examples include when a later point is within the edge, such as due to ahover, tap, press-and-hold, or up-and-down gesture (e.g., to scrollcontent in the user interface), or when the gesture is set to be asingle-input gesture and a second input is received (e.g., a firstfinger starts at an edge but a second finger then lands anywhere).

If block 208 determines that the line is approximately perpendicularbased a later point outside the edge, method 200 proceeds along a “Yes”path to block 210.

Block 210 responds to the positive determination of block 208 by passingthe gesture to an entity other than the exposed user interface. Thisentity is not a user interface over which the gesture was received,assuming it was received over a user interface at all. Block 210 maydetermine to which entity to pass the gesture as well, such as based onan edge or region of an edge in which the start point of the gesture isreceived. Consider FIG. 6, for example, which illustrates immersiveinterface 304 and edges 402, 404, 406, and 408 of FIG. 4 but adds topregion 602 and bottom region 604 to right edge 406. A start point in topregion 602 can result in a different entity (or even a same entity but adifferent user interface provided in response) than a start pointreceived to bottom region 604. Likewise, a start point in top edge 404can result in a different entity or interface than left edge 402 orbottom edge 408.

In some cases, this entity is an application associated with the userinterface rather than an application not associated with the userinterface, such as a system entity or a different application. In such acase, passing the gesture to the entity can be effective to cause theapplication to present a second user interface enabling interaction withthe application. In the movie example above, the entity can be the mediaplayer playing the movie but not the immersive interface displaying themovie. The media player can then present a second user interfaceenabling selection of subtitles or a director's commentary rather thanselections enabled by the interface displaying the movie, such as“pause,” “play,” and “stop.” This capability is permitted in FIG. 1,where one of applications 136 can include or be capable of presentingmore than one application user interface 138. Thus, block 210 can passthe gesture to system-interface module 126, the one of applications 136currently presenting the user interface, or another of applications 136,to name just three possibilities.

Concluding the ongoing embodiment, at block 210 gesture handler 128passes gesture 308 to system-interface module 126. System-interfacemodule 126 receives the buffered portion of gesture 308 and continues toreceive the rest of gesture 308 as it is made by the user. FIG. 7illustrates a possible response upon receiving gesture 308, showing anapplication-selection interface 702 presented by system-interface module126 and over immersive interface 304 and webpage 306 from FIG. 3.Application-selection interface 702 enables selection of various otherapplications and their respective interfaces at selectable applicationtiles 704, 706, 708, and 710.

The example application-selection interface 702 is an immersive userinterface presented using multi-application environment module 124,though this is not required. Presented interfaces may instead bewindows-based and presented using windows-based mode module 122. Both ofthese modules are illustrated in FIG. 1.

Block 210 may also or instead determine to pass the gesture to differententities and/or interfaces based on other factors about the gesturereceived. Example factors are described in greater detail in method 800below.

Note that method 200 and other methods described hereafter can beperformed in real-time, such as while a gesture is being made andreceived. This permits, among other things, a user interface presentedin response to a gesture to be presented prior to completion of thegesture. Further, the user interface can be presented progressively asthe gesture is received. This permits a user experience of dragging outthe user interface from the edge as the gesture is performed with theuser interface appearing to “stick” to the gesture (e.g., to a mousepointer or person's finger making the gesture).

FIG. 8 depicts a method 800 for enabling edge gestures includingdetermining an interface to present based on some factor of the gesture.In portions of the following discussion reference may be made to system100 of FIG. 1, reference to which is made for example only. Method 800may act wholly or partly separate from or in conjunction with othermethods described herein.

Block 802 determines that a gesture made over a user interface has astart point at an edge of the user interface and a later point notwithin the edge. Block 802 may operate similarly to or use aspects ofmethod 200, such as determining a later point on which to base block802′s determination. Block 802 may act differently as well.

In one case, for example, block 802 determines that a gesture is asingle-finger swipe gesture starting at an edge of an exposed immersiveuser interface and having a later point not at the edge but not based onan angle of the gesture. Based on this determination, block 802 proceedsto block 804 rather than pass the gesture to the exposed immersive userinterface.

Block 804 determines which interface to present based on one or morefactors of the gesture. Block 804 may do so based on a final orintermediate length of the gesture, whether the gesture is single ormulti-point (e.g., a single-finger or multi-finger gesture), or a speedof the gesture. Thus, block 804 may determine to present a start menu inresponse to a multi-finger gesture, an application-selection interfacein response to a relatively short single-finger gesture, or asystem-control interface permitting selection to shut down computingdevice 102 in response to relatively long single-finger gesture, forexample. To do so, gesture handler 128 may determine the length of thegesture or a number of inputs (e.g., fingers). In response, block 806presents the determined user interface.

Assume, by way of example, that gesture handler 128 determines, based ona factor of the gesture, to present a user interface enablinginteraction with operating system 120. In response system-interfacemodule 126 presents this user interface. Presentation of the userinterface can be similar to manners described in other methods, such aswith a progressive display of application-selection user interface 702of FIG. 7.

Following method 200 and/or method 800 in whole or in part, thetechniques may proceed to perform method 900 of FIG. 9. Method 900enables expansion of a user interface, presentation of anotherinterface, or ceasing presentation of the user interface presented inresponse to an edge gesture.

Block 902 receives a successive point of the gesture and afterpresentation of at least some portion of the second user interface. Asnoted in part above, methods 200 and/or 800 are able to present or causeto be presented a second user interface, such as a second user interfacefor the same application associated with a current user interface, adifferent application, or a system user interface.

By way of example, consider FIG. 10, which illustrates a laptop computer104 having a touch-sensitive display 1002 displaying a windows-basedemail interface 1004 and two immersive interfaces 1006 and 1008.Windows-based email interface 1004 is associated with an applicationthat manages email, which can be remote or local to laptop computer 104.FIG. 10 also illustrates two gestures, 1010 and 1012. Gesture 1010proceeds in a straight line while gesture 1012 reverses back (shown withtwo arrows to show two directions).

FIG. 11 illustrates gesture 1010 having a start point 1102, a laterpoint 1104, and a successive point 1106, and gesture 1012 having a samestart point 1102, a later point 1108, and a first successive point 1110,and a second successive point 1112. FIG. 11 also shows a bottom edge1114, a later-point area 1116, and an interface-addition area 1118.

Block 904 determines, based on the successive point, whether the gestureincludes a reversal, an extension, or neither. Block 904 may determine areversal by determining that a successive point is at the edge or iscloser to the edge than a prior point of the gesture. Block 904 maydetermine that the gesture extends based on the successive point being apreset distance from the edge or the later point. If neither of these isdetermined to be true, method 900 may repeat blocks 902 and 904 toreceive and analyze additional successive points until the gesture ends.If block 904 determines that there is a reversal, method 900 proceedsalong “Reversal” path to block 906. If block 904 determines that thegesture is extended, method 900 proceeds along an “Extension” path toblock 908.

In the context of the present example, assume that gesture handler 128receives first successive point 1110 of gesture 1012. Gesture handler128 then determines that first successive point 1110 is not at edge1114, is not closer than a prior point of the gesture to edge 1114(e.g., is not closer than later point 1108), and is not a presetdistance from the edge or later point by not being withininterface-addition region 1118. In such a case method 900 returns toblock 902.

On a second iteration of block 902, assume that gesture handler 128receives second successive point 1112. In such a case, gesture handler128 determines that second successive point 1112 is closer to edge 1114than first successive point 1110 and thus gesture 1012 includes areversal. Gesture handler 128 then proceeds to block 906 to cease topresent the second user interface previously presented in response tothe gesture. By way of example, consider FIG. 12, which illustrates anemail handling interface 1202. In this example case of block 906,gesture handler 128 causes the email application to cease to presentinterface 1202 in response to a reversal of gesture 1012 (not shownremoved).

Block 908, however, presents or causes presentation of a third userinterface or expansion of the second user interface. Continuing theongoing example, consider FIG. 13, which illustratesadditional-email-options interface 1302 in response to gesture 1010determined to have successive point 1106 a preset distance from edge1104, in this case being within interface-addition region 1118 of FIG.11. This region and preset distance can be set based on a size of theuser interface previously presented in response to the gesture. Thus, auser wishing to add additional controls may simply extend the gesturepast the user interface presented in response to an earlier portion ofthe gesture.

Method 900 can be repeated to add additional user interfaces or expand apresented user interface. Returning to the example interface 702 of FIG.7, for example, gesture handler 128 can continue to add interfaces orcontrols to interface 702 as gesture 308 extends past interface 702,such as by presenting an additional set of selectable application tiles.If gesture 308 extends past the additional tiles, gesture handler 128may cause system-interface module 126 to present another interfaceadjacent the tiles to enable the user to select controls, such as tosuspend, hibernate, switch modes (immersive to windows-based and thereverse), or shut down computing device 102.

While the above example user interfaces presented in response to an edgegesture are opaque, they may also be partially transparent. This can beuseful by not obscuring content. In the movie example described above, auser interface presented can be partially transparent thereby permittingthe movie to be only partially obscured during use of the userinterface. Similarly, in the example of FIGS. 12 and 13, interfaces 1202and 1302 may be partially transparent, thereby enabling a user to seethe text of the email while also selecting a control in one of theinterfaces.

As noted above, example methods 200, 800, and 900 address edge gesturesand are described prior to methods 1400 and 1700, which addressswitching back to a previously-interacted-with application. Any one ormore of the method may be used separately or in combination with, inwhole or in part, others of the methods.

Switching Back to a Previously-Interacted-With Application

FIG. 14 depicts a method 1400 for switching back to apreviously-interacted-with application using a queue. In portions of thefollowing discussion reference may be made to system 100 of FIG. 1 andother methods and example embodiments described elsewhere herein,reference to which is made for example only.

Block 1402 maintains a queue of multiple interacted-with applications,the queue arranged by most-recently-interacted-with toleast-recently-interacted-with applications other than a currentapplication. Consider, for example, FIG. 15, which illustrates aninteraction order 1502 in which a user interacts with variousapplications. First, the user interacts with a web-searching application1504 through its interface. Second, the user interacts with aweb-enabled media application 1506 through a web browser. Third, theuser interacts with a local (non-web) photo application 1508 through itsinterface. Fourth, the user interacts with a social-networkingapplication 1510 through the web browser. Fifth, the user returns tointeracting with the web-enabled media application 1506. Sixth, the userinteracts with a web-enabled news application 1512 again through the webbrowser.

For the first interaction no queue is maintained as no otherapplications have been interacted with prior to this first interaction.For the second through sixth interactions of interaction order 1502,consider queues 1514, 1516, 1518, 1520, and 1522, which correspond toeach interaction in interaction order 1502 after the first interaction,respectively. Queues 1514 to 1522 are example iterations of applicationqueue 132 maintained by application manager 130, both of FIG. 1.

As shown in FIG. 15, application manager 130 keeps application queue 132up-do-date based on a user's interactions. Queue 1522, for example,includes media application 1506 as the most-recently-interactedapplication, followed by social-networking application 1510, photoapplication 1508, and ending with web-searching application 1504. As theuser interacts with media application 1506 twice (at the second andfifth interaction) application manager 130 removes it from applicationqueue 132 at the fifth interaction and reorders the other applicationsto reflect an up-to-date order of interactions but excludingcurrently-interacted-with applications.

Block 1404 receives a gesture or gesture portions. This gesture orgesture portions can include one or more of the various gestures orportions described elsewhere herein, such as a pointer tracking amovement received through a touch pad, mouse, or roller ball or aphysical movement made with arm(s), finger(s), or a stylus receivedthrough a motion-sensitive or touch-sensitive mechanism. In someembodiments, gesture portions are received, each portion being part ofone gesture and each resulting in presentation of an application in thequeue. Each of these portions may have, but are not required to have, astart point at an edge of a display, a later point not at the edge ofthe display, and a successive point at the edge of the display. Agesture having multiple portions in this case would look something likea multi-loop spiral, multiple circles, or a back-and-forth (e.g.,zigzag) where each loop, circle, or back-and-forth starts, leaves, andreturns to an edge of a user interface or display. Optionally, block1404 may receive a number of gestures or gesture portions. Thesegestures or gesture portions can include one or more of the variousgestures or gestures portions described elsewhere herein.

Continuing the ongoing embodiment, consider again FIG. 3, whichillustrates tablet computing device 106 having touch-sensitive display302 shown displaying immersive interface 304 including webpage 306. Forthis example, assume that immersive interface 304 is associated withnews application 1512 and that webpage 306 is content from newsapplication 1512.

As part of this example, at block 1404, gesture handler 128 receivesgesture 308 as shown in FIG. 3, which gesture handler 128 passes toapplication manager 130. For the ongoing example, assume that gesture308 is determined to be associated with switching back to apreviously-interacted-with application rather than some other functionor application.

Block 1406, responsive to receiving the gesture or gesture portions,proceeds through the queue to another application of the multipleinteracted-with applications. Thus, on receiving the gesture or gestureportion(s), application manager 130 may proceed to the first, and thusthe most-recently-interacted-with of the applications of applicationqueue 132. In some embodiments, on receiving two gestures or portions,application manager 130 may proceed to the secondmost-recently-interacted-with application of application queue 132,though method 1400 may do so by repeating blocks 1404, 1406 and/or 1408,and so forth as described below.

Continuing the ongoing embodiment, assume that gesture 308 is receivedafter the sixth interaction at which time the currently-interacted-withapplication is news application 1512 and that application queue 132 isup-to-date and represented by queue 1522 of FIG. 15. In such a case,application manager 130 proceeds to media application 1506 on receivingthe gesture or gesture portion.

Block 1408 presents a user interface associated with the otherapplication. This user interface, in some embodiments, is the same userinterface through which interaction with the application was previouslymade. In some embodiments, the user interface is presented as athumbnail or transparent overlay above the currently presented userinterface. Application manager 130 presents this user interface alone orin combination with the associated application, such as by causing theassociated application to present the user interface with which the userlast interacted.

For this example, application manager 130 presents a thumbnail image ofthe user interface for the application progressively as gesture 308 isreceived and then expands the thumbnail to encompass the available realestate of the display when the gesture ends. Application manager 130thereby replaces webpage 306 in immersive interface 304 or replacesimmersive interface 304 with another interface, which can be immersiveor windows-based.

This is illustrated in FIG. 16 with thumbnail image 1602 of a userinterface of media application 1506 presented over immersive interface304 and webpage 306 of news application 1512. After gesture 308 ends,thumbnail image 1602 expands into media player 1604, replacing webpage306 in immersive interface 304. This is but one example manner forpresenting the user interface for the selected application, othersmanners for responding progressively or otherwise are describedelsewhere herein.

In some embodiments, block 1408 shrinks the current user interface to asecond thumbnail image and passes the second thumbnail image toward aregion of a display from which the first-mentioned thumbnail image isprogressively presented. Thus, block 1408 expands thumbnail image 1602into media player 1604 while shrinking webpage 306 to a thumbnail imageand passing that thumbnail to the edge from which thumbnail image 1602was selected.

During the presentation of the user interface at block 1408, anothergesture or gesture portion may be received, returning to block 1404. Insome cases, the other gesture or gesture portion is received within anamount of time while the user interface is presented by block 1408.Following the return to block 1404, block 1406 may then proceed to yetanother or subsequent application of the multiple interacted-withapplications. Continuing this progression, block 1408 then presents auser interface associated with the subsequent application of themultiple interacted-with applications.

Thus, by repeating blocks 1404, 1406, and 1408 user interfacesassociated with previously interacted-with applications can besuccessively presented. In some cases, a user interface associated witha previously-interacted with application can be presented responsive toeach gesture received. In the context of the present example, whenanother gesture is received while presenting the user interface of mediaapplication 1506, a user interface associated with social-networkingapplication 1510 (the second most-recently interacted with applicationof queue 1522) is presented. Receiving yet another gesture or gestureportion during the presentation of the user interface associated withsocial-networking application 1510 results in a presentation of a userinterface associated with photo application 1508 (the thirdmost-recently interacted with application of queue 1522) and so forth.

Following this switch from presenting a current application to apresenting another selected, prior application, block 1410 updates thequeue responsive to interaction with, or a time period passing duringpresentation of, the user interface associated with the otherapplication. In some cases a prior application may be selected and thenanother quickly selected after it, effectively a scanning through of theapplications in the queue. In such cases, block 1410 may forgo updatingthe queue, as a quick viewing may not be considered an interaction.

Example interactions with which application manager 130 updatesapplication queue 132 include an explicit selection to interact with thenewly presented interface, such as to control playback or editinformation relating to currently playing media using controls shown inthe user interface of media player 1604 of FIG. 16. In other cases aninteraction is determined based on a time period passing. Assume, forexample, that the news application's webpage is presented on selectionrather than being the current application. After some period, such asone, two, or three seconds, for example, application manager 130determines that the delay is effectively an interaction based on alikelihood that the user is reading the news article in the webpage.Similarly, presentation of a user interface for a media application atblock 1408 that is playing media and remains on the display withoutanother selection of applications in application queue 132 can also beconsidered an interaction.

As noted in part above, application queue 132 can be circular. In sodoing, selection of applications is not stopped but rather rolls if auser reaches a least-recently-interacted with application of applicationqueue 132. For example, on selecting to switch back to a priorapplication from social-networking application 1510 and thus using queue1518, switching back once results in selecting photo application 1508,twice results in media application 1506, and three times toweb-searching application 1504. A fourth selection to switch backreturns, in a circular fashion, to again result in presenting photoapplication 1508.

Method 1400 describes various ways in which the techniques can enableselection of previously-interacted-with applications and determine whichto present based on a queue. Method 1700 may operate in conjunction withmethod 1400 and other methods described herein, though using a queue isnot required. Therefore, method 1400 is not intended to limit thetechniques as described in example method 1700.

FIG. 17 depicts a method 1700 for switching back to apreviously-interacted-with application, which may or may not use aqueue. In portions of the following discussion reference may be made tosystem 100 of FIG. 1, methods 200, 800, 900, 1400, and exampleembodiments described above, reference to which is made for exampleonly.

Block 1702 enables selection of a previously-interacted-with applicationthrough a gesture made over a current user interface associated with acurrent application. Block 1702 may do so in various manners describedabove, such as with an edge gesture or portion thereof, as but oneexample.

Block 1704, responsive to receiving the gesture and without furtherselection, presents a previous user interface associated with thepreviously-interacted-with application.

Assume, for example, that a portion of a gesture is received associatedwith selection of a prior application, such as an edge gesture startingat an edge of the current user interface and proceeding approximatelyperpendicularly away from the edge. In response, block 1704 presents theuser interface for the previously-interacted-with application or athumbnail image of the interface, or some indicator that selection hassuccessfully been made along with an indicator of the application or theinterface selected.

Example thumbnail images or indicators include any of selectableapplication tiles 704, 706, 708, and 710 of FIG. 7 some of which includea thumbnail image of an interface while others indicate the applicationselected. Another example is thumbnail image 1602 of FIG. 16.

Block 1704 presents the user interface of the selected,previously-interacted-with application, as shown in FIG. 16 at mediaplayer 1604. In so doing, block 1704 may enable interaction with photoapplication 1508 through immersive interface 304 without furtherselection. Thus, a user after selecting, with as little as one gesture,a prior application may interact without needing to make anotherselection. The user need not select to exit an application-selectionmode, for example, or make the presented interface “live” or primary oron top of the stack. Simply put, the techniques enable selection of aprior application and further interaction with that prior applicationwith a single input.

In this example of FIG. 16, immediately after media player 1604 ispresented and replaces webpage 306, a next input to immersive interface304 is passed immediately to photo application 1508. Thus, a tap, hotkey, or other input is passed directly to photo application 1508,thereby enabling an immediate response by photo application 1508 to theinput.

In some embodiments, the gesture made over the current user interfaceincludes portions, each of which indicates a selection of a priorapplication. In such a case, block 1704 presents the previous userinterface in response to the first portion and then, responsive to block1702 receiving the second portion of the gesture, presents afurther-previous user interface associated with a furtherpreviously-interacted-with application, and so forth.

This is illustrated in FIG. 18, which presents immersive interface 304of FIG. 16 (shown twice for visual clarity), and ways in which block1704 can respond to multiple gestures or portions of a single gesture.FIG. 18 illustrates two progressive presentations, 1802 and 1804, andgesture 1806 having two gesture portions 1806-1 and 1806-2,respectively. First progressive presentation 1802 illustrates a dragfrom a left edge of immersive interface 304 of thumbnail image 1602, andthus selection of the previously-interacted with photo application 1508.Note that thumbnail image 1602 “sticks” to gesture portion 1806-1. Notealso that gesture 1806, unlike gesture 308 of FIGS. 3 and 16, returns tothe left edge. In response, rather than gesture 308 ending and mediaplayer 1604 replacing webpage 306, gesture portion 1806-1 of gesture1806 returns to the edge at which it began. In this case thumbnail image1602 is progressively displayed with gesture portion 1806-1 but thendisappears when gesture portion 1806-1 returns to the edge.

Gesture 1806 continues with second portion 1806-2. In response, block1704 presents second progressive presentation 1804, illustrating asecond drag from the left edge of immersive interface 304. Here a socialnetwork thumbnail image 1808 of a further prior application,social-networking application 1510, is progressively presented. Gesture1806 returns to the left edge as part of second portion 1806-2. Inresponse, block 1704 drops off thumbnail image 1808 when gesture portion1806-2 returns to the edge. This is but one example of ways in which thetechniques enable users to select and view prior applications, even allof the previously-interacted-with applications, with only a singlegesture. At any point in this example, gesture 1806 may end or indicateselection to present the full user interface for the selectedapplication, at which time block 1704 presents the user interface (e.g.,media player 1604 of FIG. 16 or a full user interface for thesocial-networking application).

As noted above, example methods 200, 800, and 900 address edge gesturesand are described prior to methods 1400 and 1700, which addressswitching back to a previously-interacted-with application, which are inturn described prior to methods 1900 and 2200. Any one or more of themethod may be used separately or in combination with, in whole or inpart, others of the methods.

Managing an Immersive Interface

FIG. 19 depicts a method 1900 enabling a multi-application environment,including altering sizes of multiple immersive interfaces responsive toa single selection. In portions of the following discussion referencemay be made to system 100 of FIG. 1 and other methods and exampleembodiments described elsewhere herein, reference to which is made forexample only.

Block 1902 enables selection to alter a first size of a first immersiveinterface of a first application displayed in a multi-applicationenvironment in which a second immersive interface of a secondapplication is displayed at a second size.

Block 1902 can enable this selection in various manners set forth above,such as with a gesture, whether made through a gesture-sensitive displayor a track pad or mouse, or with a hardware button or hot keys, to namejust a few.

Consider, by way of example, a case where block 1902 enables aselect-and-move gesture selection through a gesture-sensitive display,the select-and-move gesture of an interface divider region betweenimmersive interfaces of a multi-application environment. This example isillustrated in FIG. 20, which illustrates a desktop computing device 112having a touch-sensitive display 2002 shown displaying amulti-application environment 2004. Multi-application environment 2004includes a larger immersive interface 2006 and a smaller immersiveinterface 2008 separated by an immersive interface divider 2010. Largerimmersive interface 2006 is associated with a word-processingapplication and presents document content 2012. Smaller immersiveinterface 2008 is associated with a software mapping application andpresents mapping content 2014. As part of an ongoing example, at block1902 manager 134 receives gesture 2016 as shown in FIG. 20, shown withan arrow but omitting an input actor (e.g., a finger or stylus).

Block 1904, responsive to selection to alter the first size of the firstimmersive interface, alters the first size of the first immersiveinterface and the second size of the second immersive interface. Block1904, therefore, may alter sizes of multiple immersive interfacesresponsive to as few as one selection. Further, block 1904 may do soconcurrently and without occluding either of the interfaces.

By way of example, consider the ongoing example of FIG. 20. Responsiveto select-and-move gesture 2016 of interface divider region 2010,manager 134 reduces one interface and increases the other concurrently,here increasing smaller immersive interface 2008 and decreasing, at thesame time, larger immersive interface 2006. The result of thisalteration is illustrated in FIG. 21 at altered smaller immersiveinterface 2102 and altered larger immersive interface 2104. The priorposition of interface divider region 2010 is shown at prior position2106. Note also that select-and-move gesture 2016 starts at priorposition 2106 of interface divider region 2010 and ends at finalposition 2108 of interface divider region 2010.

Note that in this example, multi-application environment 2004 is fullyoccupied with the immersive interfaces, both prior to and after alteringsizes of the immersive interfaces, without unused real estate or realestate occluded with visible controls for managing the immersiveinterfaces.

This particular example illustrates one way in which the techniquespermit a user to select sizes of immersive interfaces, here to increasea map presented by the mapping application.

The techniques also permit users to “snap” immersive interfaces toautomatically fill a predetermined region of multi-applicationenvironment 2004. By so doing, gestures and other selections can be usedthat are fast and easy for users. Further, these regions can have apredetermined size across multiple devices, thereby permittingapplication developers to prepare for the region sizes. This isespecially useful for smaller region sizes, as smaller sizes are oftenmore challenging to present in a user-friendly manner. Consider againFIG. 20, for example, which illustrates a predetermined small-regionwidth 2018, here having a width of 320 pixels. In this example, threeregions are shown, two of which are subordinate in that they areincluded within a full region. These regions have widths, width 2018 andremainder width 2020 for the two subordinate regions, and a full width2022 of a full region, all of multi-application environment 2004. Notethat remainder width 2020 can vary across displays, as can full width2022.

Block 1902 may also enable selection through a drag-and-drop gesture ofone of the immersive interfaces from one region to another region. Insuch a case block 1904 may switch the interfaces between the regions orautomatically move a divider (e.g., immersive interface divider 2010 ofFIG. 20) such that resulting sizes are switched. By so doing, manager134 automatically reduces larger immersive interface 2006 to fullyoccupy a region previously occupied by smaller immersive interface 2008and vice-versa.

In some cases selection to alter a size of an interface is enabledthrough an edge gesture. Consider, for example, an edge gesture startingat an edge of larger immersive interface 2006 and having a later pointnot at the edge of larger immersive interface 2006. Manager 134, aloneor in conjunction with gesture handler 128 and/or application manager130, shrinks larger immersive interface 2006 to a reduced-size image.Selection to resize interface 2006, then, can be performed by droppingthe reduced-size image over smaller immersive interface 2008. Inresponse, manager 134 resizes both interfaces.

Method 1900 describes various ways enabling a multi-applicationenvironment, including altering sizes of multiple immersive interfacesresponsive to a single selection. Method 2200 may operate in conjunctionwith method 1900 and other methods described herein, though using aqueue is not required. Therefore, method 1900 is not intended to limitthe techniques as described in example method 2200.

FIG. 22 depicts a method 2200 for displaying an immersive interface ofan application in a region, including responsive to as little as oneselection and at a size fully occupying the region. In portions of thefollowing discussion reference may be made to system 100 of FIG. 1,methods 200, 800, 900, 1400, 1700, and 1900, and example embodimentsdescribed above, reference to which is made for example only.

Block 2202 enables selection to display an immersive interface of anapplication in one of multiple regions of a multi-applicationenvironment displaying one or more current immersive interfaces of oneor more current applications. Block 2202 may do so in various mannersdescribed above, such as with an edge gesture or portion thereof, as butone example. Further, the application selected can be apreviously-interacted with application determined in various manners,such as by application manager 130 using application queue 132, both ofFIG. 1.

The multi-application immersive interface can, at block 2202, presentone, two, or even three current immersive interfaces. Thus, block 2202permits selection of an application to place in regions currentlyoccupied or that exist but are occupied by a larger immersive interface,such as in cases where one immersive interface fully occupies amulti-application environment.

By way of example, consider FIG. 23, which illustrates a currentimmersive interface 2302 occupying multi-application environment 2304.Note here that there are three subordinate regions, 2306, 2308, and2310. These regions may be indicated or not. In cases where anapplication has been selected and is hovered or moved over one of theregions, the region can be indicated with partially transparentimmersive interface dividers 2312 and 2314. These three subordinateregions 2360, 2308, and 2310 are included within full-size region 2316occupying substantially all of multi-application environment 2304.

By way of example, assume that manager 134 receives apreviously-interacted-with application selected according to method 1700and following the example illustrated in FIG. 18. In such as case,assume that thumbnail image 1808 for social-networking application 1510is selected and hovered over region 2306 (not shown but similar to FIG.18). In response, manager 134 indicates that region 2306 is or is aboutto be selected and the size of region 2306 by displaying partiallytransparent immersive interface divider 2312.

Returning to method 2200, block 2204, responsive to the selection todisplay the immersive interface in the region, displays the immersiveinterface at a size fully occupying the region. Note that the user, witha little as the one selection of the application, can select and havepresented an immersive interface at a size fully occupying a selectedregion.

Continuing the example, consider FIG. 24, which illustratesmulti-application environment 2304 but now with a reduced-size immersiveinterface 2402 instead of current immersive interface 2302 of FIG. 23,and with a second immersive interface 2404 showing a social-networkingwebpage 2406 for social-networking application 1510 of FIG. 15. Secondimmersive interface 2404 fully occupies region 2306 and without userselection other than selection of the region.

Note that the arrangement of content in reduced-size immersive interface2402 and social-networking webpage 2406 are both changed. Size changescan be made more quickly or allow for better content arrangementsapplications and/or developers of those applications having these regionsizes in advance, which are provided by the techniques as predeterminedregion widths. Here the predetermined region width provided is region2306, though a fill-width region 2408 may also be provided.

Following block 2204, method 2200 may repeat blocks 2202 and 2204,thereby enabling selection of additional immersive interfaces. Forexample, manager 134 can enable selection of a third immersive interfacefor presentation in region 2310 or 2308 of FIG. 23. In response to sucha selection, manager 134 reduces the size of, or replaces, reduced-sizeimmersive interface 2402.

Note that any of these methods may be combined in whole or in part.Thus, a gesture portion, for example, may be used to select an immersiveinterface and another portion of the same gesture select to place and/orsize the immersive interface. In response to this single gesture, thetechniques can resize multiple interfaces currently presented in amulti-application environment.

User Interface for Managing a Multi-Application Environment

FIG. 25 depicts a method 2500 for managing a multi-applicationenvironment through a user interface. In portions of the followingdiscussion reference may be made to system 100 of FIG. 1 and othermethods and example embodiments described elsewhere herein, reference towhich is made for example only.

Block 2502 enables selection of a user interface for managing amulti-application environment. Selection of the user interface can bemade in various ways including those described above, such as with agesture or portion of a gesture, hardware button or hot key, or voicecommand, just to name a few. Prior to selection, the user interface canbe fully displayed, partially displayed, or not at all displayed.Consider, for example, a scenario where a multi-application environmentis displayed and the user interface is not displayed. An example of sucha scenario is illustrated in FIG. 26, which shows display 2600 filledwith multi-application environment 2602. Multi-application environment2602 includes a primary region 2604 and a non-primary region 2606, bothof which present various content from applications 136. Note thatnon-primary region 2606 includes two non-primary sections 2608 and 2610,each of which may be used to present content in parallel with each otherand that of primary region 2604. In this example, content from threeapplications is presented in parallel: content 2612 from a socialnetworking website, content 2614 from a news website, and content 2616from a local document-viewing application.

Here manager 134 of FIG. 1 enables selection of the user interface witha non-visual selector, such as a hot key or gesture (e.g., an edgegesture made to a right edge of multi-application environment 302). Insome other cases, however, manager 134 enables selection through adisplayed, selectable control.

Block 2504 displays the user interface responsive to this selection. Theuser interface can be an immersive user interface or a semi-transparentoverlay enabling further selection. Through this user interface, block2506 enables selection of an application for parallel presentation inthe multi-application environment.

This user interface enables a user to manage the multi-applicationenvironment, though it may enable this in various manners. The userinterface, for example, may enable a user to present, remove, or set asdefault an application to the user interface and/or the environment,such as through selection of labels associated with, or representationsof, the applications. The user interface may enable a user to selectpreferences for applications to be presented in the user interface,alter the environment generally, or switch to a non-multi-applicationenvironment. Furthermore, the user interface may present applicationsfor selection based on various criteria, such as those applications thatare most-recently used or most-often used by a user of computing device102, as well as whether or not the application is currently executing.Further still, the user interface may present a common set of systemcommands pertaining to an application, such as a user interface thatenables search commands, sharing content, or altering settings.

Continuing the ongoing example, assume that manager 134 receives,through a gesture made on a touch screen of display 2600, a selection topresent the user interface. In response, manager 134 presents userinterface management menu 2700 illustrated in FIG. 27, through whichselection of applications is enabled. This example user interfacemanagement menu 2700 presents icons and/or names for nine applications.The nine applications include various websites, services, and localcomputing applications, and are named “Social Net,” “News.com,” “PDFs,”“Telecon,” “Music.com,” “Movies.com,” “Poker.com,” “Art Space,”, and“Maps by GPS” at 2702, 2704, 2706, 2708, 2710, 2712, 2714, 2716, and2718, respectively. As noted, other applications, such as thosepertaining to system commands, can also be presented by manager 134. Byway of example, consider system commands 2719 shown as a tenthapplication of user interface management menu 2700, named “Search ShareSettings.”

In this particular example, two applications, 2702 and 2704, are“pinned.” Pin icons, shown at 2720 and 2722, indicate that applications2702 and 2704 will be maintained in one or both of multi-applicationenvironment 2602 and in user interface management menu 2700 (here itindicates both). Thus, both the “Social Net” and “News.com” applicationswill be executing and presenting content within some part of environment2602 without further selection by the user (shown in sections 2608 and2610, respectively). Note that selection of maintained (“pinned”)applications can be enabled by manager 134 in various ways, such asthrough user interface management menu 2700 presenting pinning selectionicon 2724 for selection of any of applications 2702-2718. As noted, anyof the selectable applications may or may not be currently executing—inthis case applications 2702, 2704, 2706, and 2708 are executing andapplications 2710-2718 are not currently executing.

User interface management menu 2700 may also present applications basedon other criteria, such as a user's history. Applications 2706, 2708,2710, and 2712, for example, are presented based on being the fourmost-recently-used by a user of computing device 102 (other than 2702and 2704). Applications 2714, 2716, and 2718 are presented based onbeing most-often-used, excluding applications 2702-2712. In other cases,applications may be presented based on new content associated with theapplication being available (e.g., new emails, messages, or RSS feeds)or as other alerts for the application are received.

Further still, user interface management menu 2700 enables a user tomanage multi-application environment 2602 in addition to management ofapplications, such as with window selection icon 2726. Through thisselection, manager 134 permits a user to select to exitmulti-application environment 2602 and continue with currently-presentedcontent using a windows-based environment.

Returning to method 2500, block 2508, responsive to selection of one ormore applications, causes content of a selected application to bepresented in the multi-application environment in parallel withpresentation of content of a different application.

Method 2500 may receive multiple selections. In response to thesemultiple selections, block 2508 causes content of each selectedapplication to be presented in the multi-application environment. Insuch a case, manager 134 may serially present content from each of theselected applications or at once. In one serial case, consider the aboveexample but assume that application 2706 was selected at a prioriteration of block 2506 and, responsive to this selection, manager 134presented content 2616 of application 2706 (as shown in FIGS. 26 and27). Following this selection of application 2706, later iterations ofblocks 2506 and 2508 are performed. Serial presentation of applicationsis enabled by manager 134 at least through additional iterations ofblock 2506 and 2508, shown as potentially repeating with a dashed linefrom block 2508 to block 2506.

Desktop as an Immersive Interface in a Multi-Application Environment

FIG. 28 depicts a method 2800 enabling display of a windows-baseddesktop as an immersive interface within a multi-applicationenvironment. In portions of the following discussion reference may bemade to system 100 of FIG. 1 and other methods and example embodimentsdescribed elsewhere herein, reference to which is made for example only.

Block 2802 displays a desktop as an immersive interface within amulti-application environment. The multi-application environment, likethose described elsewhere herein, is configured to support access tomultiple applications. Thus, a user may see content through an interfaceassociated with an application (or multiple applications if multipleapplications include interfaces on the desktop) and interact with thatapplication through the interface, all through the multi-applicationenvironment.

Block 2804 enables interaction with the desktop immersive interface.This interaction can be simultaneous with interactions enabled for otherinterfaces. Further, this interaction can be through themulti-application environment and also include windows-based anddesktop-based controls, such as window-frame controls and a taskbar,respectively.

Windows-based mode module 122 and multi-application environment module124, acting separately or in conjunction with operating system 120 ofFIG. 1, for example, may treat a desktop immersive interface as one ofapplications 136 and windows and taskbars, etc., as various examples ofapplication user interfaces 138.

By way of example, consider FIG. 29, which illustrates tablet computingdevice 106 having a desktop immersive interface 2902 displayingwindows-based interfaces 2904 and taskbar 2906, and an immersiveinterface 2908 displaying content 2910, all within multi-applicationenvironment 2912. Desktop immersive interface 2902 may also includerepresentations (e.g., icons) of applications executable within desktopimmersive interface 2902 and representations of folders to support ahierarchical file structure of computing device 102, to name just a few.

Further, the functionality provided within the desktop immersiveinterface 2902 may behave differently than other interfaces withinmulti-application environment 2912, such as those common towindows-based interfaces.

Block 2806, responsive to interaction, provides the interaction to anapplication within the desktop immersive interface. In some cases thisincludes passing a gesture or gesture portion to an application havingan interface within the desktop immersive interface, such as tooperating system 120 for an interaction with taskbar 2906, or to anapplication associated with one of window-based interfaces 2904. Inother cases this may include passing keystrokes to a primary (e.g.,up-front) window of windows-based interfaces 2904. In so doing, thetechniques permit users to engage with applications and interfacescommon to desktop, windows-based environments, while also permittinginteraction with immersive interfaces and other operations of amulti-application environment.

A desktop immersive interface can be managed in a manner similar oridentical to those described elsewhere herein. An edge gesture, forexample, may be used to select, move, or size a desktop immersiveinterface, such as desktop immersive interface 2902. Further, a desktopimmersive interface can behave as a single application as part of anapplication queue, and thus be selected or removed from amulti-application environment as noted for other interfaces above.

Multi-Application Environment

The techniques and apparatuses described above enable many differentembodiments of a multi-application environment, including environmentshaving one interface but permitting additional interfaces, multipleinterfaces that are all immersive, multiple interfaces that are a mix ofimmersive and windows-based interfaces, and a desktop treated as animmersive interface. In some embodiments, these multi-applicationenvironments enable selection of various menus or additional interfacesfor systems and applications offering additional controls. In stillother embodiments, these multi-application environments enable gesturesby which to manage applications and interfaces.

FIG. 30 depicts a method 3000 enabling content presentation and/ormanagement of a multi-application environment. In portions of thefollowing discussion reference may be made to system 100 of FIG. 1 andother methods and example embodiments described elsewhere herein,reference to which is made for example only.

Block 3002 presents multiple interfaces associated with multipleapplications within a multi-application environment, at least one of themultiple interfaces being an immersive interface.

As noted elsewhere herein, the multi-application environment can presentvarious combinations of different interfaces. Consider, for example,multi-application environments having at least one immersive interfaceas shown in each of FIGS. 3, 7, 10, 12, 16, 18, 20, 23, 24, 26, 27, and29. These example multi-application environments are described in order.

FIG. 3 illustrates a multi-application environment having a singleimmersive interface 304. FIG. 7 illustrates a multi-applicationenvironment having the single immersive interface of FIG. 3 along withapplication-selection interface 702. FIG. 10 illustrates amulti-application environment having windows-based email interface 1004and two immersive interfaces 1006 and 1008. FIG. 12 illustrates themulti-application environment of FIG. 10 along with an interfaceenabling additional controls—email handling interface 1202. FIG. 16illustrates a multi-application environment switching from webpage 306,responsive to a gesture selection, to media player 1604. FIG. 18illustrates a multi-application environment having immersive interface304 and thumbnail images 1602, 1808 of two other interfaces (oneimmersive and the other windows-based). FIG. 20 illustrates amulti-application environment having two immersive interfaces, largerimmersive interface 2006 and smaller immersive interface 2008 separatedby immersive interface divider 2010. FIG. 23 illustrates amulti-application environment having current immersive interface 2302and regions 2306 and 2310 in which other interfaces can be snapped tofully occupy. FIG. 24 illustrates the multi-application environment ofFIG. 23 having second immersive interface 2404 showing asocial-networking webpage 2406 for social-networking application 1510 ofFIG. 15. FIG. 26 illustrates a multi-application environment presentingcontent through three immersive interfaces, one in primary region 2604and the other two in non-primary region 2606. FIG. 27 illustrates themulti-application environment of FIG. 26 along with a user interfacemanagement menu 2700. FIG. 29 illustrates a multi-applicationenvironment 2912 having desktop immersive interface 2902 displayingwindows-based interfaces 2904 and taskbar 2906, and an immersiveinterface 2908 displaying content 2910.

Block 3004 presents content through at least one of the multipleinterfaces. Content is shown displayed in many figures described above,such as media being played, social-networking webpages, news websitearticles, and word-processing documents. The content being displayed isreceived from various sources, such as applications 136, which may havegenerated the content or received the content from a remote source(e.g., in cases of a web browser application receiving content from aremote provider).

Note that many of the mentioned figures show content presentedconcurrently. The multi-application environment can present moving,visual media, such as a movie, in one interface while at the same timepresenting a webpage having a media slideshow in another interface, bothin real time. Further, the multi-application environment enablesinteraction with multiple interfaces without necessarily requiring aninitial selection. Thus, a user may select one interface or another,without having to first select an interface that is not primary or ontop of a stack, as can be the case in windows-based environments.

Block 3006 enables selection to alter a size or a location in themulti-application environment or remove from the multiple-applicationenvironment at least one of the multiple interfaces. Block 3006 may actin various manners described elsewhere herein, such as to enableselection to move an interface from one region of the multi-applicationenvironment to another with a drag-and-drop gesture.

Block 3008, responsive to receiving the selection, alters the size of,alters the location of, or removes the selected interface from themulti-application environment. Example alterations to sizes andlocations of interfaces in the multi-application environment are shownin FIGS. 23 and 24. FIG. 23 illustrates multi-application environment2304 having at first current immersive interface 2302 and then havingreduced-size immersive interface 2402 and with a second immersiveinterface 2404 showing a social-networking webpage 2406.

Block 3010, responsive to the same selection, alters a size or locationof another interface in the multi-application environment. This is alsoshown in FIGS. 23 and 24. While not shown, multi-application environmentmodule 124 responds to an interface being removed by resizing and/orre-locating other interface(s) within the multi-application environment.Assume a case where multi-application environment 2304 includes bothinterfaces 2402 and 2404 of FIG. 24. Responsive to a selection to removesecond immersive interface 2402, multi-application environment module124 returns to multi-application environment 2304 as shown in FIG. 23,which includes only current immersive interface 2302. Note that currentimmersive interface 2302 is larger than, and occupies a region of,second immersive interface 2404.

The preceding discussion describes some methods in which the techniquesmanage immersive interfaces in a multi-application environment, someother methods that enable switching back to a previously-interacted-withapplication, still other methods that describe ways in which thetechniques enable and/or use edge gestures, further methods describingways in which the techniques enable and/or use a desktop as an immersiveinterface, and a method enabling content presentation and/or managementof a multi-application environment. These methods are shown as sets ofblocks that specify operations performed but are not necessarily limitedto the order shown for performing the operations by the respectiveblocks. Furthermore, these methods, in whole or in part, can be used incombination.

Aspects of these methods may be implemented in hardware (e.g., fixedlogic circuitry), firmware, a System-on-Chip (SoC), software, manualprocessing, or any combination thereof. A software implementationrepresents program code that performs specified tasks when executed by acomputer processor, such as software, applications, routines, programs,objects, components, data structures, procedures, modules, functions,and the like. The program code can be stored in one or morecomputer-readable memory devices, both local and/or remote to a computerprocessor. The methods may also be practiced in a distributed computingenvironment by multiple computing devices.

Example Device

FIG. 31 illustrates various components of example device 3100 that canbe implemented as any type of client, server, and/or computing device asdescribed with reference to the previous FIGS. 1-31 to implementtechniques enabling and using edge gestures, switching back to apreviously-interacted with application, and/or managing an immersiveinterface in a multi-application environment. In embodiments, device3100 can be implemented as one or a combination of a wired and/orwireless device, as a form of television client device (e.g., televisionset-top box, digital video recorder (DVR), etc.), consumer device,computer device, server device, portable computer device, user device,communication device, video processing and/or rendering device,appliance device, gaming device, electronic device, and/or as anothertype of device. Device 3100 may also be associated with a user (e.g., aperson) and/or an entity that operates the device such that a devicedescribes logical devices that include users, software, firmware, and/ora combination of devices.

Device 3100 includes communication devices 3102 that enable wired and/orwireless communication of device data 3104 (e.g., received data, datathat is being received, data scheduled for broadcast, data packets ofthe data, etc.). The device data 3104 or other device content caninclude configuration settings of the device, media content stored onthe device, and/or information associated with a user of the device.Media content stored on device 3100 can include any type of audio,video, and/or image data. Device 3100 includes one or more data inputs3106 via which any type of data, media content, and/or inputs can bereceived, such as user-selectable inputs, messages, music, televisionmedia content, recorded video content, and any other type of audio,video, and/or image data received from any content and/or data source.

Device 3100 also includes communication interfaces 3108, which can beimplemented as any one or more of a serial and/or parallel interface, awireless interface, any type of network interface, a modem, and as anyother type of communication interface. The communication interfaces 3108provide a connection and/or communication links between device 3100 anda communication network by which other electronic, computing, andcommunication devices communicate data with device 3100.

Device 3100 includes one or more processors 3110 (e.g., any ofmicroprocessors, controllers, and the like), which process variouscomputer-executable instructions to control the operation of device 3100and to enable techniques enabling a multi-application environment.Alternatively or in addition, device 3100 can be implemented with anyone or combination of hardware, firmware, or fixed logic circuitry thatis implemented in connection with processing and control circuits whichare generally identified at 3112. Although not shown, device 3100 caninclude a system bus or data transfer system that couples the variouscomponents within the device. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures.

Device 3100 also includes computer-readable storage media 3114, such asone or more memory devices that enable persistent and/or non-transitorydata storage (i.e., in contrast to mere signal transmission), examplesof which include random access memory (RAM), non-volatile memory (e.g.,any one or more of a read-only memory (ROM), flash memory, EPROM,EEPROM, etc.), and a disk storage device. A disk storage device may beimplemented as any type of magnetic or optical storage device, such as ahard disk drive, a recordable and/or rewriteable compact disc (CD), anytype of a digital versatile disc (DVD), and the like. Device 3100 canalso include a mass storage media device 3116.

Computer-readable storage media 3114 provides data storage mechanisms tostore the device data 3104, as well as various device applications 3118and any other types of information and/or data related to operationalaspects of device 3100. For example, an operating system 3120 can bemaintained as a computer application with the computer-readable storagemedia 3114 and executed on processors 3110. The device applications 3118may include a device manager, such as any form of a control application,software application, signal-processing and control module, code that isnative to a particular device, a hardware abstraction layer for aparticular device, and so on.

The device applications 3118 also include any system components ormodules to implement the techniques, such as device applications 3118including multi-application environment module 124, system-interfacemodule 126, gesture handler 128, application manager 130, manager 134,and application(s) 136.

Conclusion

Although embodiments of techniques and apparatuses enabling amulti-application environment have been described in language specificto features and/or methods, it is to be understood that the subject ofthe appended claims is not necessarily limited to the specific featuresor methods described. Rather, the specific features and methods aredisclosed as example implementations enabling a multi-applicationenvironment.

What is claimed is:
 1. A computer-implemented method comprising:presenting an interface associated with an application within amulti-application environment; receiving, over the multi-interfaceenvironment, a portion of a gesture requesting access to anapplication-selection menu of the multi-application environment; andpresenting, in response to the portion of the gesture, theapplication-selection menu within the multi-application environment. 2.The computer-implemented method as described in claim 1, wherein eachapplication selectable from the application-selection menu isrepresented by a respective reduced-size image of an interfaceassociated with the selectable application.
 3. The computer-implementedmethod as described in claim 1, wherein the interface is a firstinterface, the application is a first application, the portion of thegesture is a first portion of the gesture, and the method furthercomprises receiving, over the application-selection menu, a secondportion of the gesture indicating selection of a second interface of asecond application for presentation within the multi-applicationenvironment.
 4. The computer-implemented method as described in claim 3,further comprising presenting, responsive to the second portion of thegesture, a portion of the second interface of the second applicationwithin the multi-application environment.
 5. The computer-implementedmethod as described in claim 4, further comprising: receiving, a thirdportion of the gesture in a direction opposite to that of the secondportion of the gesture; and ceasing, responsive to the third portion ofthe gesture, to present the portion of the second interface of thesecond application within the multi-application environment.
 6. Thecomputer-implemented method as described in claim 4, further comprising:receiving, a third portion of the gesture in a direction substantiallysimilar to that of the second portion of the gesture; and presenting,responsive to the third portion of the gesture, the second interface ofthe second application fully within the multi-application environment.7. The computer-implemented method as described in claim 6, wherein themulti-application environment comprises multiple regions in which topresent interfaces associated with applications and the method furthercomprises selecting, based on the direction of the third portion of thegesture or an end point of the gesture, one of the multiple regions inwhich to present the second interface of the second application.
 8. Thecomputer-implemented method as described in claim 1, wherein the gestureis an edge gesture having a starting point at an edge of themulti-application environment and a later point not at the edge of themulti-application environment.
 9. The computer-implemented method asdescribed in claim 1, wherein the application-selection menu comprises aqueue of previously-interacted-with applications.
 10. Thecomputer-implemented method as described in claim 9, wherein thepreviously-interacted with applications of the queue are arranged frommost-recently-interacted-with to least-recently-interacted-withapplications.
 11. The computer-implemented method as described in claim10, wherein an order of the queue is circular such that themost-recently-interacted-with application follows theleast-recently-interacted-with application in the order of applicationqueue.
 12. The computer-implemented method as described in claim 9,wherein the method further comprises receiving, over the queue, one ormore subsequent portions of the gesture and advancing, responsive to theone or more subsequent portions of the gesture, through the queue ofpreviously-interacted-with applications.
 13. A system comprising: one ormore processors; one or more computer-readable storage media storinginstructions that, responsive to execution by the one or moreprocessors, cause the one or more processors to perform operationscomprising: presenting, via a display associated with the system, amulti-application environment having two or more regions in which topresent interfaces; receiving, over the multi-interface environment, afirst portion of a gesture requesting access to an application-selectionmenu of the multi-application environment; presenting, in response toreceiving the first portion of the gesture, the application-selectionmenu within the multi-application environment; receiving, over theapplication-selection menu, a second portion of the gesture selecting anapplication from the application-selection menu; and presenting, inresponse to the second portion of the gesture, an interface associatedwith the application in one of the two or more regions of themulti-application environment.
 14. The system as described in claim 13,wherein the second portion of the gesture is an end portion of thegesture, application-selection interface is configured as a queue ofselectable applications, and the operations further comprise: receiving,over the application-selection interface, one or more intermediateportions of the gesture; and advancing, in response to the one or moreintermediate portions of the gesture, through the selectableapplications of the queue.
 15. The system as described in claim 14,wherein the intermediate portions of the gesture comprise a combinationof circular gesture portions or back-and-forth gesture portions.
 16. Thesystem as described in claim 14, wherein the selectable applications ofthe queue comprise previously-interacted-with applications of themulti-application environment.
 17. The system as described in claim 13,wherein the gesture is an edge gesture having a starting point at anedge of the multi-application environment and a later point not at theedge of the multi-application environment.
 18. The system as describedin claim 13, wherein the system is implemented as a gaming device, smartphone, laptop computer, tablet computer, or set-top box.
 19. One or morecomputer-readable storage media comprising instructions that, responsiveto execution by one or more hardware-based processors, cause the one ormore hardware-based processors to perform operations: presenting a firstinterface associated with a first application within a first region of amulti-application environment, the multi-application environment havingmultiple regions in which to present interfaces without frame controls;receiving, over the multi-interface environment, a first portion of agesture requesting access to an application-selection menu of themulti-application environment; presenting, in response to the firstportion of the gesture, the application-selection menu within themulti-application environment; receiving, over the application-selectionmenu, a second portion of the gesture selecting a second application;and presenting, in response to the second portion of the gesture, asecond interface associated with the second application in a secondregion of the multi-application environment.
 20. One or morecomputer-readable storage media as described in claim 19, wherein theoperations further comprise moving or re-sizing the first interface to athird region of the multi-application environment to accommodate thepresentation of the second interface in the second region.